//
// Created by vivi on 24/03/2018.
//

#pragma once

#include <cmath>
#include <numeric>

namespace HairEngine {
	enum VPlyOptions {
		NormalParticles = 1,
		VirtualParticles = 1 << 1,
		Particles = 1 + (1 << 1),

		StretchSprings =  1 << 2,
		BendingSprings =  1 << 3,
		TorsionSprings =  1 << 4,
		VirtualStretchSprings = 1 << 5,
		AltitudeSprings = 1 << 6,
		InternalSprings = (1 << 2) + (1 << 3) + (1 << 4) + (1 << 5) + (1 << 6),

		CollisionObject_ = 1 << 10, //Avoid duplicate naming

		HairContactsGrid = 1 << 15,
		HairContactsSpring = 1 << 16,

		HairCollisionsSpring = 1 << 20
	};

	struct Constants {
		constexpr static const float DEGREE = (float)(M_PI / 180.0);
		constexpr static const float INF = std::numeric_limits<float>::infinity();
	};
}
